package com.bds.snatch.system.util;

import java.util.LinkedList;

/**
 * Created by guoyu on 2017/8/7.
 */
public class LockUtils {

    /**
     * 加锁，取出元素之后，移除，防止被别的线程取到
     * LinkedList实现deque继承自queue，所以具有“先进先出”的特性，所以取第一个元素即可
     */
    public static Integer LockObj(LinkedList<Integer> toBeLockedObj) {
        synchronized (Const.LOCK_OBJ) {
            return toBeLockedObj.poll();
        }
    }

    /**
     * 解锁，将元素归还，以便别的线程使用
     */
    public static Integer unLockObj(LinkedList<Integer> toBeLockedObj, int value) {
        synchronized (Const.LOCK_OBJ) {
            toBeLockedObj.offer(value);
            return value;
        }
    }
}
